package com.magic.smartcity.view.more.models.services

import com.magic.smartcity.beans.*
import com.magic.smartcity.beans.pojo.ResultData
import com.magic.smartcity.beans.pojo.ResultList
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.*

interface HospitalService {

    /**
     * 获取指定医院的轮播图
     * 返回的Data列表
     */
    @GET("/prod-api/api/hospital/banner/list")
    fun getHospitalBanner(@Query("hospitalId") hospitalId: Int): Observable<ResultList<HospitalBanner>>

    /**
     * 获取所有医院列表
     * 返回的Rows列表
     */
    @GET("/prod-api/api/hospital/hospital/list")
    fun getHospitalList(): Observable<ResultList<HospitalDetail>>

    /**
     * 获取指定医院详情信息
     * 返回Data列
     */
    @GET("/prod-api/api/hospital/hospital/{id}")
    fun getHospitalById(@Path("id") hospitalId: Int): Observable<ResultData<HospitalDetail>>

    /**
     * 获取当前登录的用户的就诊卡
     * 返回Rows列
     */
    @GET("/prod-api/api/hospital/patient/list")
    fun getPatientCardList(): Observable<ResultList<HospitalPatientCard>>

    /**
     * 新增就诊人卡
     * 返回Data,msg数据
     */
    @POST("/prod-api/api/hospital/patient")
    fun addPatientCard(@Body hospitalPatientCard: HospitalPatientCard): Observable<ResultData<HospitalPatientCard>>

    /**
     * 修改就诊人信息
     * 返回Data,msg数据
     */
    @PUT("/prod-api/api/hospital/patient")
    fun editPatientCard(@Body hospitalPatientCard: HospitalPatientCard): Observable<ResultData<HospitalPatientCard>>

    /**
     * 获得门诊科室列表
     */
    @GET("/prod-api/api/hospital/category/list")
    fun getDepartments(): Observable<ResultList<HospitalDepartments>>

    /**
     * 根据类型Id获得门诊科室列表
     */
    @GET("/prod-api/api/hospital/category/list")
    fun getDepartmentsByTypeId(@Query("type") type: Int): Observable<ResultList<HospitalDepartments>>

    /**
     * 提交病人预约单
     */
    @POST("/prod-api/api/hospital")
    fun submitPatientReserve(@Body hospitalPatientReserve: HospitalPatientReserve):Observable<ResultData<HospitalPatientReserve>>

}